package
{
		import alternativa.engine3d.core.Mesh;
		import alternativa.engine3d.materials.FillMaterial;
        import flash.events.Event;
		import flash.utils.Timer;
        
        public class PorteInterieurAscenseur extends Mesh
        {
        	private var hauteur:int;
            private var largeur:int;
            private var longueur:int;
            private var gauche:Boolean;
            private var ouvert:Boolean;
            private var counter:int;
            private var timer:Timer;
        
        	public function PorteInterieurAscenseur(gauche:Boolean)
            {
                super("Interieur");
                
                hauteur=200;
                longueur=100;
                largeur=2.5;
                this.gauche=gauche;
                ouvert=false;
                counter=0;
                
                createVertex(0,0,0,1);
                createVertex(0,0,hauteur,2);
                createVertex(largeur,0,0,3);
                createVertex(largeur,0,hauteur,4);    
                createVertex(largeur,longueur,0,5);
                createVertex(largeur,longueur,hauteur,6);
                createVertex(0,longueur,0,7);
                createVertex(0,longueur,hauteur,8);
                
                createFace([3,5,6,4],"Fr");//right
                createSurface(["Fr"],"Sr");
                setMaterialToSurface(new FillMaterial(0xA0B5B3,1,"normal",1,0x000000),"Sr")
            	if(gauche){
            		name+="Gauche";
            		createFace([1,3,4,2],"Ff"); //front
            		createSurface(["Ff"],"Sf");
            		setMaterialToSurface(new FillMaterial(0xA0B5B3,1,"normal",1,0x000000),"Sf");
            	}
            	else{
            		name+="Droite";
            		createFace([7,8,6,5],"Fb"); //back
            		createSurface(["Fb"],"Sb");
            		setMaterialToSurface(new FillMaterial(0xA0B5B3,1,"normal",1,0x000000),"Sb");
            	}
                
                timer= new Timer(0);
				timer.addEventListener("timer", activerPortes);
            }
			
			public function estOuvert():Boolean{
        		return ouvert;
        	}
        	
        	public function timerStart():void{
        		timer.start();
        	}
        	
        	public function activerPortes(e:Event):void{
        		if(ouvert){
        			fermerPortes();
        		}else{
        			ouvrirPortes();
        		}
        	}
        	
        	public function ouvrirPortes():void{
        		if(counter==50){
        			ouvert=true;
					timer.stop();		
				}
				else{
					if(gauche){
						this.y++;
					}else{
						this.y--;
					}
					counter++;
				}
        	}
        	public function fermerPortes():void{
        		if(counter==0){
        			ouvert=false;
					timer.stop();		
				}
				else{
					if(gauche){
						this.y--;
					}else{
						this.y++;
					}
					counter--;
				}	
        	}
        }
}